package com.qinggeng.project.system.service.impl;

import com.qinggeng.common.utils.DateUtils;
import com.qinggeng.project.api.dto.GoodsCollectDto;
import com.qinggeng.project.api.dto.GoodsDto;
import com.qinggeng.project.system.domain.UserCollect;
import com.qinggeng.project.system.mapper.UserCollectMapper;
import com.qinggeng.project.system.service.IGoodsService;
import com.qinggeng.project.system.service.IOrdersService;
import com.qinggeng.project.system.service.IUserCollectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 用户收藏信息Service业务层处理
 *
 * @author qinggeng
 * @date 2020-06-16
 */
@Service
public class UserCollectServiceImpl implements IUserCollectService
{
    @Resource
    private UserCollectMapper userCollectMapper;

    @Autowired
    private IGoodsService goodsService;

    /**
     * 查询用户收藏信息
     *
     * @param collectId 用户收藏信息ID
     * @return 用户收藏信息
     */
    @Override
    public UserCollect selectUserCollectById(Long collectId)
    {
        return userCollectMapper.selectUserCollectById(collectId);
    }

    /**
     * 查询用户收藏信息列表
     *
     * @param userCollect 用户收藏信息
     * @return 用户收藏信息
     */
    @Override
    public List<UserCollect> selectUserCollectList(UserCollect userCollect)
    {
        return userCollectMapper.selectUserCollectList(userCollect);
    }

    /**
     * 新增用户收藏信息
     *
     * @param userCollect 用户收藏信息
     * @return 结果
     */
    @Override
    public int insertUserCollect(UserCollect userCollect)
    {
        userCollect.setStatus("10");
        userCollect.setCreateTime(DateUtils.getNowDate());
        return userCollectMapper.insertUserCollect(userCollect);
    }

    /**
     * 修改用户收藏信息
     *
     * @param userCollect 用户收藏信息
     * @return 结果
     */
    @Override
    public int updateUserCollect(UserCollect userCollect)
    {
        userCollect.setUpdateTime(DateUtils.getNowDate());
        return userCollectMapper.updateUserCollect(userCollect);
    }

    /**
     * 批量删除用户收藏信息
     *
     * @param collectIds 需要删除的用户收藏信息ID
     * @return 结果
     */
    @Override
    public int deleteUserCollectByIds(Long[] collectIds)
    {
        return userCollectMapper.deleteUserCollectByIds(collectIds);
    }

    /**
     * 删除用户收藏信息信息
     *
     * @param collectId 用户收藏信息ID
     * @return 结果
     */
    @Override
    public int deleteUserCollectById(Long collectId)
    {
        return userCollectMapper.deleteUserCollectById(collectId);
    }

    @Override
    public UserCollect selectUserCollectByUserId(Long goodsId, Long shopId, Long userId) {
        return userCollectMapper.selectUserCollectByUserId(goodsId,shopId,userId);
    }

    @Override
    public List<GoodsCollectDto> selectUserCollectGoodsList(UserCollect where) {
        List<GoodsCollectDto> goodsCollectDtoList=userCollectMapper.selectUserCollectGoodsList(where);
        for (GoodsCollectDto collectDto:goodsCollectDtoList
             ) {
            collectDto.setGoodsMarkList(goodsService.getGoodsMarkList(collectDto,collectDto.getGoodsMark()));
        }
        return goodsCollectDtoList;
    }
}
